function listarEspacos() {
    try {
        containerPrincipal.insert('listagem_recurso', 'espaco.html', null);
        containerPrincipal.select('listagem_recurso');
    } catch(e) {
        reportCrash(null, e.name, e.stack);
    }
}

function abrirGestao() {
    try {
        containerPrincipal.insert('gestao', 'gestao.html', null);
        containerPrincipal.select('gestao');
    } catch(e) {
        reportCrash(null, e.name, e.stack);
    }
}

function manutencaoEspaco(acao, cod_espaco) {
    try {
        $("#progress").show();
        var data = {};
        data.acao = acao;
        data.cod_espaco = cod_espaco;
        var valid = false;
        if (acao != 'excluir') {
            if($('#cod_facilidade').val() != null && $('#cod_facilidade').val().length > 0) {
                data.cod_facilidade = $('#cod_facilidade').val().join(",");
            }
            //data.area = $('#area').val();
            data.cod_espaco = $('#cod_espaco').val();
            data.bi = $('#bi').val();
            data.cod_cmdo = $('#cod_cmdo').val();
            data.descricao = $('#descricao').val();
            data.cadastro_dphcex = $('#cadastro_dphcex').val();
            data.email = $('#email').val();
            data.cod_estado_espaco = $('#cod_estado_espaco').val();
            if($('#cod_fonte_recursos').val() != null && $('#cod_fonte_recursos').val().length > 0) {
                data.cod_fonte_recursos = $('#cod_fonte_recursos').val().join(",");
            }
            data.nome = $('#nome').val();
            data.site = $('#site').val();
            data.funcionamento = $('#funcionamento').val();
            data.cod_om = $('#cod_om').val();
            data.cod_rm = $('#cod_rm').val();
            data.telefone = $('#telefone').val();
            data.cod_tipo_espaco = $('#cod_tipo_espaco').val();
            data.logradouro = $('#logradouro').val();
            data.numero = $('#numero').val();
            data.cidade = $('#cidade').val();
            data.estado = $('#estado').val();
            data.cep = $('#cep').val();
            data.bairro = $('#bairro').val();
            data.complemento = $('#complemento').val();
            $.each(data, function(index, value) {
                if(value == null || value == "") {
                    delete data[index];
                }
            });
            valid = $("#form_manutencao_espaco").valid();
        }
        if(acao == "excluir" || valid) {
            $.ajax({
                type: "POST",
                url : "../controllers/EspacoCulturalController.php",
                data : data,
                success: function(msg){
                    try {
                        $("#progress").hide();
                        if (msg.indexOf("Exception: ") != -1) {
                            msg = msg.replace("Exception: ", "");
                            showMessage(ERROR_MESSAGE, msg);
                            return;
                        }
                        if (acao != 'excluir') {
                            listarEspacos();
                        } else if (acao == 'excluir') {
                            var botao = $('#' +cod_espaco).children("td:first");
                            tabela_espaco.fnDeleteRow( tabela_espaco.fnGetPosition(botao[0])[0]);
                        }
                        $("#manutencao_espaco").dialog('close');
                    } catch(e) {
                        reportCrash(null, e.name, e.stack);
                    }
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    $("#progress").hide();
                    reportCrash(XMLHttpRequest, textStatus, errorThrown);
                }
            });
        } else {
            $("#progress").hide();
        }
    } catch(e) {
        reportCrash(null, e.name, e.stack);
    }
}

function listarEspacosByCMDO(cmdo) {
    try {
        if(cmdo == null || cmdo == '') {
            cmdo = 'cml';
        }
        $.ajax({
            type: "POST",
            url : "controllers/EspacoCulturalController.php",
            data : {
                cmdo : cmdo,
                acao : 'listar',
                tipo_listagem : 'json'
            },
            success: function(msg){
                try {
                    if (msg.indexOf("Exception: ") != -1) {
                        msg = msg.replace("Exception: ", "");
                        showMessage(ERROR_MESSAGE, msg);
                        return;
                    }
                    var result = $.evalJSON(msg);
                    $("#resultado_titulo").html(cmdo.toUpperCase());
                    $.each(result, function() {
                        $("#espaco").tmpl(this).appendTo("#resultado");
                    });
                    
                } catch(e) {
                    reportCrash(null, e.name, e.stack);
                }
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                reportCrash(XMLHttpRequest, textStatus, errorThrown);
            }
        });
    } catch(e) {
        reportCrash(null, e.name, e.stack);
    }
}

function consultarEspaco(cod_espaco, callback) {
    try {
        $.ajax({
            type: "POST",
            url : "/sispec/controllers/EspacoCulturalController.php",
            data : {
                cod_espaco : cod_espaco,
                acao : 'consultar',
                tipo_listagem : 'json'
            },
            success: function(msg){
                try {
                    if (msg.indexOf("Exception: ") != -1) {
                        msg = msg.replace("Exception: ", "");
                        showMessage(ERROR_MESSAGE, msg);
                        return;
                    }
                    var result = $.evalJSON(msg);
                    $("#espaco").tmpl(result).appendTo("#content");
                    $.each(result.facilidades, function(){
                        $("#facilidade").tmpl(this).appendTo("#faclidades");
                    });
                    if(callback) {
                        callback();
                    }
                } catch(e) {
                    reportCrash(null, e.name, e.stack);
                }
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                reportCrash(XMLHttpRequest, textStatus, errorThrown);
            }
        });
    } catch(e) {
        reportCrash(null, e.name, e.stack);
    }
}

/*function consultarEspacoOnAdminView(cod_espaco) {
    try {
        $("#progress").show();
        $.ajax({
            type: "POST",
            url : "/sispec/controllers/EspacoCulturalController.php",
            data : {
                cod_espaco : cod_espaco,
                acao : 'consultar',
                tipo_listagem : 'json'
            },
            success: function(msg){
                try {
                    if (msg.indexOf("Exception: ") != -1) {
                        msg = msg.replace("Exception: ", "");
                        showMessage(ERROR_MESSAGE, msg);
                        return;
                    }
                    var result = $.evalJSON(msg);
                    containerPrincipal.insert('consulta_recurso', 'consulta/espaco.html', function() {
                        try {
                            result.descricao.replace("\n","<br>");
                            $("#espaco_template").tmpl(result).appendTo("#espaco_consulta_content");
                            listarArquivos(result.cod_espaco,'slider', 'image', 'imagem', function () {
                                $('#slider').nivoSlider();
                            });
                            $("#principal_content_title").html("Consulta de Espa&ccedil;o Cultural");
                            if(result.permissoes.alteracao == "S") {
                                $('td.cell_editable_espaco').hover(function(){
                                    $(this).effect("highlight", {}, 3000);
                                });
                                $('#cod_om').editable( '../controllers/EspacoCulturalController.php', {
                                    indicator : '<img src="/sispec/resources/images/spinner.gif">',
                                    tooltip   : 'Clique duas vezes para editar...',
                                    type     : 'select',
                                    loadurl : "../controllers/OmController.php",
                                    loaddata : {
                                        acao: "listar",
                                        tipo_listagem: "editable_json"
                                    },
                                    submit : 'OK',
                                    "callback": function( sValue, y ) {
                                        if (sValue.indexOf("Exception: ") != -1) {
                                            var message = sValue.replace("Exception: ", "");
                                            message = message.substring(0, message.indexOf("|"));
                                            showMessage(ERROR_MESSAGE, message);
                                            sValue = sValue.substring(sValue.indexOf("|") + 1, sValue.length);
                                        }
                                        return sValue;
                                    },
                                    "submitdata": function ( value, settings ) {
                                        return {
                                            "row_id": result.cod_espaco, 
                                            "acao" : "alterar"
                                        };
                                    },
                                    "height": "25px"
                                } );
                                $('#cod_rm').editable( '../controllers/EspacoCulturalController.php', {
                                    indicator : '<img src="/sispec/resources/images/spinner.gif">',
                                    tooltip   : 'Clique duas vezes para editar...',
                                    type     : 'select',
                                    loadurl : "../controllers/RmController.php",
                                    loaddata : {
                                        acao: "listar",
                                        tipo_listagem: "editable_json"
                                    },
                                    submit : 'OK',
                                    "callback": function( sValue, y ) {
                                        if (sValue.indexOf("Exception: ") != -1) {
                                            var message = sValue.replace("Exception: ", "");
                                            message = message.substring(0, message.indexOf("|"));
                                            showMessage(ERROR_MESSAGE, message);
                                            sValue = sValue.substring(sValue.indexOf("|") + 1, sValue.length);
                                        }
                                        return sValue;
                                    },
                                    "submitdata": function ( value, settings ) {
                                        return {
                                            "row_id": result.cod_espaco, 
                                            "acao" : "alterar"
                                        };
                                    },
                                    "height": "25px"
                                } );
                                $('#cod_cmdo').editable( '../controllers/EspacoCulturalController.php', {
                                    indicator : '<img src="/sispec/resources/images/spinner.gif">',
                                    tooltip   : 'Clique duas vezes para editar...',
                                    type     : 'select',
                                    loadurl : "../controllers/CmdoController.php",
                                    loaddata : {
                                        acao: "listar",
                                        tipo_listagem: "editable_json"
                                    },
                                    submit : 'OK',
                                    "callback": function( sValue, y ) {
                                        if (sValue.indexOf("Exception: ") != -1) {
                                            var message = sValue.replace("Exception: ", "");
                                            message = message.substring(0, message.indexOf("|"));
                                            showMessage(ERROR_MESSAGE, message);
                                            sValue = sValue.substring(sValue.indexOf("|") + 1, sValue.length);
                                        }
                                        return sValue;
                                    },
                                    "submitdata": function ( value, settings ) {
                                        return {
                                            "row_id": result.cod_espaco, 
                                            "acao" : "alterar"
                                        };
                                    },
                                    "height": "25px"
                                } );
                                $('#cod_tipo_espaco').editable( '../controllers/EspacoCulturalController.php', {
                                    indicator : '<img src="/sispec/resources/images/spinner.gif">',
                                    tooltip   : 'Clique duas vezes para editar...',
                                    type     : 'select',
                                    loadurl : "../controllers/TipoEspacoController.php",
                                    loaddata : {
                                        acao: "listar",
                                        tipo_listagem: "editable_json"
                                    },
                                    submit : 'OK',
                                    "callback": function( sValue, y ) {
                                        if (sValue.indexOf("Exception: ") != -1) {
                                            var message = sValue.replace("Exception: ", "");
                                            message = message.substring(0, message.indexOf("|"));
                                            showMessage(ERROR_MESSAGE, message);
                                            sValue = sValue.substring(sValue.indexOf("|") + 1, sValue.length);
                                        }
                                        return sValue;
                                    },
                                    "submitdata": function ( value, settings ) {
                                        return {
                                            "row_id": result.cod_espaco, 
                                            "acao" : "alterar"
                                        };
                                    },
                                    "height": "25px"
                                } );
                                $('#cod_estado_espaco').editable( '../controllers/EspacoCulturalController.php', {
                                    indicator : '<img src="/sispec/resources/images/spinner.gif">',
                                    tooltip   : 'Clique duas vezes para editar...',
                                    type     : 'select',
                                    loadurl : "../controllers/EstadoEspacoController.php",
                                    loaddata : {
                                        acao: "listar",
                                        tipo_listagem: "editable_json"
                                    },
                                    submit : 'OK',
                                    "callback": function( sValue, y ) {
                                        if (sValue.indexOf("Exception: ") != -1) {
                                            var message = sValue.replace("Exception: ", "");
                                            message = message.substring(0, message.indexOf("|"));
                                            showMessage(ERROR_MESSAGE, message);
                                            sValue = sValue.substring(sValue.indexOf("|") + 1, sValue.length);
                                        }
                                        return sValue;
                                    },
                                    "submitdata": function ( value, settings ) {
                                        return {
                                            "row_id": result.cod_espaco, 
                                            "acao" : "alterar"
                                        };
                                    },
                                    "height": "25px"
                                } );
                                $('#estado').editable( '../controllers/EspacoCulturalController.php', {
                                    indicator : '<img src="/sispec/resources/images/spinner.gif">',
                                    tooltip   : 'Clique duas vezes para editar...',
                                    type     : 'select',
                                    data   : " {'RJ':'RJ','SP':'SP','MG':'MG'}",
                                    submit : 'OK',
                                    "callback": function( sValue, y ) {
                                        if (sValue.indexOf("Exception: ") != -1) {
                                            var message = sValue.replace("Exception: ", "");
                                            message = message.substring(0, message.indexOf("|"));
                                            showMessage(ERROR_MESSAGE, message);
                                            sValue = sValue.substring(sValue.indexOf("|") + 1, sValue.length);
                                        }
                                        return sValue;
                                    },
                                    "submitdata": function ( value, settings ) {
                                        return {
                                            "row_id": result.cod_espaco, 
                                            "acao" : "alterar"
                                        };
                                    },
                                    "height": "25px"
                                } );
                                
                                $('.cell_editable_espaco.textarea').editable( '../controllers/EspacoCulturalController.php', {
                                    indicator : '<img src="/sispec/resources/images/spinner.gif">',
                                    tooltip : 'Clique duas vezes para editar...',
                                    type : 'textarea',
                                    rows : 4,
                                    submit : 'OK',
                                    data: function(value, settings) {
                                        var retval = value.replace(/<br[\s\/]?>/gi, '\n');
                                        return retval;
                                    },
                                    "callback": function( sValue, y ) {
                                        if (sValue.indexOf("Exception: ") != -1) {
                                            var message = sValue.replace("Exception: ", "");
                                            message = message.substring(0, message.indexOf("|"));
                                            showMessage(ERROR_MESSAGE, message);
                                            sValue = sValue.substring(sValue.indexOf("|") + 1, sValue.length);
                                        }
                                        return sValue;
                                    },
                                    "submitdata": function ( value, settings ) {
                                        return {
                                            "row_id": result.cod_espaco, 
                                            "acao" : "alterar"
                                        };
                                    },
                                    "height": "25px"
                                } );
                                
                                $('.cell_editable_espaco.text').editable( '../controllers/EspacoCulturalController.php', {
                                    indicator : '<img src="/sispec/resources/images/spinner.gif">',
                                    tooltip   : 'Clique duas vezes para editar...',
                                    submit : 'OK',
                                    "callback": function( sValue, y ) {
                                        if (sValue.indexOf("Exception: ") != -1) {
                                            var message = sValue.replace("Exception: ", "");
                                            message = message.substring(0, message.indexOf("|"));
                                            showMessage(ERROR_MESSAGE, message);
                                            sValue = sValue.substring(sValue.indexOf("|") + 1, sValue.length);
                                        }
                                        return sValue;
                                    },
                                    "submitdata": function ( value, settings ) {
                                        return {
                                            "row_id": result.cod_espaco, 
                                            "acao" : "alterar"
                                        };
                                    },
                                    "height": "25px"
                                } );
                                console.log($("#cep form input"));
                                $("#cep form input").mask("99.999-999");
                                $("#telefone form input").mask("(99)9999-9999");
                            } else {
                                $('td.cell_editable_espaco').removeClass("cell_editable_espaco");
                            }
                            
                            containerPrincipal.select('consulta_recurso');
                            $("#progress").hide();
                        } catch(e) {
                            $("#progress").hide();
                            reportCrash(null, e.name, e.stack);
                        }
                    });
                } catch(e) {
                    $("#progress").hide();
                    reportCrash(null, e.name, e.stack);
                }
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                $("#progress").hide();
                reportCrash(XMLHttpRequest, textStatus, errorThrown);
            }
        });
    } catch(e) {
        $("#progress").hide();
        reportCrash(null, e.name, e.stack);
    }
}*/

function listarArquivos(cod_espaco, elemento, filtro, template, callback, admin) {
    try {
        $.ajax({
            type: "POST",
            url : "/sispec/controllers/ArquivoController.php",
            data : {
                cod_espaco : cod_espaco,
                acao : 'listar',
                tipo_listagem : 'json',
                filtro : filtro
            },
            success: function(msg){
                try {
                    if (msg.indexOf("Exception: ") != -1) {
                        msg = msg.replace("Exception: ", "");
                        showMessage(ERROR_MESSAGE, msg);
                        return;
                    }
                    $("#" + elemento).html("");
                    var result = $.evalJSON(msg);
                    $.each(result.arquivos, function() {
                        $("#" + template).tmpl(this).appendTo("#" + elemento);
                    });
                    if(admin) {
                        tabela_imagens = $('#tabela_imagens').dataTable({
                            "sDom": '<"H"lfr>t<"F"ip>T',
                            "bJQueryUI": true,
                            "sPaginationType": "full_numbers",
                            "bProcessing": true,
                            "bAutoWidth": false,
                            "oLanguage": {
                                "sUrl": "/sispec/resources/json/pt_BR.json"
                            }
                        });
                        var permissoes = result.permissoes;
                        if(permissoes.alteracao == 'N') {
                            $(".edit_action_image_content").each(function() {
                                $(this).toggleClass('cell_editable');
                            });
                        } else {
                            $('#tabela_imagens tbody td.cell_editable').editable( '/sispec/controllers/ArquivoController.php', {
                                "callback": function( sValue, y ) {
                                    if (sValue.indexOf("Exception: ") != -1) {
                                        var message = sValue.replace("Exception: ", "");
                                        message = message.substring(0, message.indexOf("|"));
                                        showMessage(ERROR_MESSAGE, message);
                                        sValue = sValue.substring(sValue.indexOf("|") + 1, sValue.length);
                                    }
                                    var aPos = tabela_imagens.fnGetPosition( this );
                                    tabela_imagens.fnUpdate( sValue, aPos[0], aPos[1] );
                                },
                                "submitdata": function ( value, settings ) {
                                    return {
                                        "row_id": this.parentNode.getAttribute('id'), 
                                        "acao" : "alterar"
                                    };
                                },
                                "height": "25px"
                            } );
                        }
                        if(permissoes.exclusao == 'N') {
                            $(".remove_action_image_content").children().each(function() {
                                $(this).remove();
                            });
                        }
                        if(permissoes.inclusao == 'N') {
                            $("#upload_file_espaco_button").remove();
                        }
                    }
                    if(callback) {
                        callback();
                    }
                } catch(e) {
                    reportCrash(null, e.name, e.stack);
                }
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                reportCrash(XMLHttpRequest, textStatus, errorThrown);
            }
        });
    } catch(e) {
        reportCrash(null, e.name, e.stack);
    }
}

function manutencaoArquivo(acao, cod_arquivo, cod_espaco) {
    $.ajax({
        type: "POST",
        url : "../controllers/ArquivoController.php",
        data : {
            cod_arquivo : cod_arquivo,
            acao : acao
        },
        success: function(msg){
            try {
                if (msg.indexOf("Exception: ") != -1) {
                    msg = msg.replace("Exception: ", "");
                    showMessage(ERROR_MESSAGE, msg);
                    return;
                }
                if (acao == 'excluir') {
                    showDialogUploadFile(cod_espaco);
                }
            } catch(e) {
                reportCrash(null, e.name, e.stack);
            }
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            reportCrash(XMLHttpRequest, textStatus, errorThrown);
        }
    });
}

function showDialogUploadFile(cod_espaco) {
    $("#upload_file_espaco").load('/sispec/admin/imagem.html', function() {
        $('#file_upload').remove();
        var input = $("<input></input>");
        input.attr("id","file_upload");
        input.attr("name","file_upload");
        input.attr("type","file");
        input.appendTo($("#upload_file_espaco_input_content"));
        $("#upload_file_espaco_button").button().click(function() {
            $('#file_upload').uploadifyUpload();
        });
        $('#file_upload').uploadify({
            uploader : '/sispec/resources/flash/uploadify.swf',
            script : '/sispec/controllers/ArquivoController.php',
            scriptData : {
                acao : 'cadastrar',
                cod_espaco : cod_espaco
            },
            cancelImg : '/sispec/resources/images/uploadify/cancel.png',
            buttonText : "Incluir arquivos...",
            auto : false,
            multi : true,
            onAllComplete: function() {
                showDialogUploadFile(cod_espaco);
            }
        });
        listarArquivos(cod_espaco,'resultado_file_upload', 'image', 'arquivo', function() {
            $('#tabela_imagens').parent().show();
        }, true);
        
        $("#upload_file_espaco").dialog("destroy");
        
        $("#upload_file_espaco").dialog({
            width : 690,
            height : 550,
            modal: true,
            resizable : false
        });
    });
}

function showDialogManutencaoEspacoCultural(acao, callback) {
    var buttons;
    if(acao == 'cadastrar') {
        cod_espaco_alterar = null;
        buttons = {
            Cadastrar : function () {
                manutencaoEspaco(acao, null);
            },
            Cancelar: function() {
                $(this).dialog('close');
            }
        };
    } else {
        buttons = {
            Alterar : function () {
                manutencaoEspaco(acao, null);
            },
            Cancelar: function() {
                $(this).dialog('close');
            }
        };
    }
    $("#manutencao_espaco").load("forms/espaco.html", function () {
        if(callback != null) {
            callback();
        }
        
        $("#manutencao_espaco").dialog({
            autoOpen : true,
            width : 800,
            height : 640,
            modal: true,
            resizable : false,
            buttons: buttons
        });
    });
}

preencherDialogEspacoCultural = function(cod_espaco) {
    try {
        cod_espaco_alterar = cod_espaco;
    } catch(e) {
        reportCrash(null, e.name, e.stack);
    }
}